package role

import "context"

type RoleRepositoryIface interface {
	// RoleSave 新增/更新角色
	RoleSave(ctx context.Context, role *GfyRolePo) (int64, error)
	// DeleteRole 删除角色
	DeleteRole(ctx context.Context, roleId int64, operatorId int64) (int64, error)
	// RoleList 角色列表
	RoleList(ctx context.Context) ([]*GfyRolePo, error)
	// RoleListByRoleIds 根据角色编号角色列表
	RoleListByRoleIds(ctx context.Context, roleIds []int64) ([]*GfyRolePo, error)
	// RoleDetail 角色详情
	RoleDetail(ctx context.Context, roleId int64) (*GfyRolePo, error)
	// AddPermissionToRole 增加权限角色
	AddPermissionToRole(ctx context.Context, roleId int64, permissionIds []int64) error
	// PermissionListByRoleId 获取角色关联的的权限列表
	PermissionListByRoleId(ctx context.Context, roleId int64) ([]*GfyxRolePermissionRelation, error)
	// GetByRoleName 检查角色名称是否存在
	GetByRoleName(ctx context.Context, name string) (*GfyRolePo, error)
}
